package org.miframework.arqsw.VistaMap;

import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class VistaMap {
	String controlador;
	String vista;
	
	public VistaMap(String controlador,String vista){
		this.controlador=controlador;
		this.vista=vista;		
	}
	
	public String mapeo(){
		String valorRetorno=null;
		DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
   	 	
        DocumentBuilder docBuilder;
		try {
			docBuilder = docBuilderFactory.newDocumentBuilder();
			Document doc = docBuilder.parse (new File("C:/Users/Pablo/workspace/miframework/WebContent/WEB-INF/vistas.xml"));
			NodeList nodos = doc.getElementsByTagName("vista");
			String nombre="", retorno="", urlc="";
			for(int i=0; i<nodos.getLength(); i++){
				Node controlador = nodos.item(i);
				for(int j=0; j<controlador.getChildNodes().getLength(); j++){
					if(controlador.getChildNodes().item(j).getNodeName().equals("nombre")){
						nombre = controlador.getChildNodes().item(j).getTextContent();					
					}
					else if(controlador.getChildNodes().item(j).getNodeName().equals("retorno")){
						retorno = controlador.getChildNodes().item(j).getTextContent();					
					}
					else if(controlador.getChildNodes().item(j).getNodeName().equals("url-controlador")){
						urlc = controlador.getChildNodes().item(j).getTextContent();					
					}
				}
				if(this.controlador.equals(urlc)){
					if(nombre.equals(vista)){
						valorRetorno=retorno;
						break;
					}	
				}
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println("error en el xml");
			e.printStackTrace();
		}
		//Caso en el que no se encuentra una vista apropiada, se asume una por defecto
		if(valorRetorno==null){
			//TO DO
		}
		return valorRetorno;
	}
}
